home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
gnu
/
perl5000.zip
/
perl5000
/
vms
/
writemain.pl
< prev
Wrap
Perl Script
|
1994-10-12
|
1KB
|
53 lines
#!./miniperl
#
# Create perlmain.c from miniperlmain.c, adding code to boot the
# extensions listed on the command line.
#
if (-f 'miniperlmain.c') { $dir = ''; }
elsif (-f '../miniperlmain.c') { $dir = '../'; }
else { die "$0: Can't find miniperlmain.c\n"; }
open (IN,"${dir}miniperlmain.c")
|| die "$0: Can't open ${dir}miniperlmain.c: $!\n";
open (OUT,">${dir}perlmain.c")
|| die "$0: Can't open ${dir}perlmain.c: $!\n";
while (<IN>) {
s/INTERN\.h/EXTERN\.h/;
print OUT;
last if /Do not delete this line--writemain depends on it/;
}
$ok = !eof(IN);
close IN;
if (!$ok) {
close OUT;
unlink "${dir}perlmain.c";
die "$0: Can't find marker line in ${dir}miniperlmain.c - aborting\n";
}
if ($#ARGV > -1) {
print OUT " char *file = __FILE__;\n";
}
foreach $ext (@ARGV) {
print OUT "extern void boot_${ext} _((CV* cv));\n"
}
foreach $ext (@ARGV) {
print "Adding $ext . . .\n";
if ($ext eq 'DynaLoader') {
# Must NOT install 'DynaLoader::boot_DynaLoader' as 'bootstrap'!
# boot_DynaLoader is called directly in DynaLoader.pm
print OUT " newXS(\"${ext}::boot_${ext}\", boot_${ext}, file);\n"
}
else {
print OUT " newXS(\"${ext}::bootstrap\", boot_${ext}, file);\n"
}
}
print OUT "}\n";
close OUT;